هدف از راه اندازی این وب سایت آموزشی، کمک کردن به علاقه مندان به یادگیری علم الکترونیک و میکروکنترلر بوده بخصوص دانش آموزان و دانشجویان که برای پیدا کردن مطلب مورد نظر خود سایتهای گوناگونی را جستجو میکنند که در نهایت به هدف خود نمی رسند، در این وب سایت سعی براین است که آموزش از پایه شروع شود. در ادامه با مثالهای نحوه استفاده از قطعات الکترونیک و عیب یابی آنها آموزش داده خواهد شد. همچنین پروژه های برای آموزش قرار داده شده است.
اسماعیل بخش زاد محمودی
09118315058
09336485452
09373054607
09390617786
telegram.me/Electronic_iran کانال
Esmail_bakhshzad@yahoo.com esmail2bakhshzad@gmail.com
محافظ تمام دیجیتال هوشمند وسایل برقی ( یخچال و فریزر- صوتی تصویری-کامپیوتر )
منبع تغذیه 0-32 ولت 0-5 آمپر قابل افزایش تا 0-20 آمپر (Power supply 0-5A 0-20A)
مدار کنترل کننده هوشمند تپ چنجر ترانس قدرت 63 کیلو ولت سه فاز
هشدار دهنده نشت گاز شهری و دود همراه با قطع خودکار گاز و برق
محافظت از سطح ولتاژ شارژ- جریان شارژ و دمای باطری های UPS تا 200 آمپر
محافظت و کنترل حد جریان سه فاز 0-200 آمپر در سه رنج کاری
کنترل و راه اندازی سروموتورهای الکتریکی و موتور DC و موتور ﭘله ای
قفل الکترونیکی هوشمند توسط تاچ لمسی (Touch Screen)
تابلوی روان با ماتریس 32*8 ارسال پیام متنی از طریق کامپیوتر
طراحی و ساخت فانکشن ژنراتور با کنترل لمسی توسط (Touch Screen)
محافظت و کنترل ولتاژ و جریان خروجی از مدار AC / DC
کنترل دور موتورهای الکتریکی و اعمال موج PWM و از طرق رابط تاچ ﭘد و LCDگرافیکی (Touch Screen)
پروژه مدار آشکارساز نشت گازمتان و گاز بوتان و LPG سنسور MQ
پروژه کنترل و محافظت دیجیتال ولتاژ
پروژه منبع تغذیهDigital 0-42V 5A
ولتمتر و آمپرمتر دیجیتال با AVR
برنامه نویسی میکروکنترلر 52 & 8051
مدار مبدل آنالوگ به دیجیتال ADC
کاربرد تراشه TTL 74HC573 در تابلو روان LED
مبدل آنالوگ به دیجیتال ADC میکرو کنترل AVR
کاربرد تراشه TTL74541 در ولتمتر دیجیتال با AVR
کاربرد تراشه رگلاتور ولتاژ LM723
تقویت کننده تفاضلی Single Operational Amplifier
استفاده از ترانزیستور برای سویچ کردن Switching Transistor
برنامه راه اندازی موتور پله ای Stop Motor
گذرگاه ارتباط دو سیمه میکرو کنترلر AVR – SPI
www.powerengineering.blogfa.com
الکترونیک مقدماتی
الکترونیک صنعتی
میکرو الکترونیک AVR
برنامه نویسی Assembl
1.پروژه آزمایشگر میکروکنترلر 8051-52
2.پروژه آزمایشگر میکروکنترلر PIC
3.پروژه ساعت RTC با میکرو 8051
4.محافظ تمام دیجیتال هوشمند AVR
5.پروژه LED-Stopper 7x20میکرو AVR
6.پروژه Digital Clock LED 32x8 AVR
7.پروژه Digital Voltmeter-Ammeter
8.پروژه منبع تغذیه Digital Power Supply 0-42V 5A
9.پروژه کنترل و محافظت دیجیتال ولتاژ خروجی AC/DC
10.پروژه ساعت دیجیتال RTC با AVR
11.پروژه مدار آشکارساز نشت گازمتان و گاز بوتان و LPG سنسور MQ
13.محافظت و کنترل ولتاژ و جریان خروجی از مدار AC / DC
14.طراحی و ساخت فانکشن ژنراتور با کنترل لمسی توسط (Touch Screen)
15.تابلوی روان با ماتریس 32*8 ارسال پیام متنی از طریق کامپیوتر
16.قفل الکترونیکی هوشمند توسط تاچ لمسی (Touch Screen)
17.کنترل و راه اندازی سروموتورهای الکتریکی و موتور DC و موتور ﭘله ای
18.محافظت و کنترل حد جریان سه فاز 0-200 آمپر در سه رنج کاری
19.محافظت از سطح ولتاژ شارژ- جریان شارژ و دمای باطری های UPS تا 200 آمپر
20. پروژه کنترل دور و زاویه چرخش موتور های گیربکس دار
21. محافظ ولتاژ برق شهر تایمر دار 30 آمپری
22.هشدار دهنده نشت گاز شهری و دود همراه با قطع خودکار گاز و برق
23. مدار کنترل کننده هوشمند تپ چنجر ترانس قدرت 63 کیلو ولت سه فاز
24. منبع تغذیه 0-32 ولت 0-5 آمپر قابل افزایش تا 0-20 آمپر (Power supply 0-5A 0-20A)
25. محافظ تمام دیجیتال هوشمند وسایل برقی ( یخچال و فریزر- صوتی تصویری-کامپیوتر )
1. مقالات در رابطه با سیستم های دیجتال و اطلاعاتی مفید در رابطه با Multimedia Card (MMC – SD)
2. مقالات در رابطه با آموزش میکروکنترلر AVR و PIC و8051-52 و...
دانلود نرم افزارهای کاربردی
1.نرم افزارهای برای میکروکنترلر 8051
2.نرم افزارهای برای میکروکنترلر PIC
3.نرم افزارهای برای میکروکنترلر AVR
ساعت
عنوان ﭘروژه : محافظت از سطح ولتاژ شارژ- جریان شارژ و دمای باطری های UPS تا 200 آمپر
شرح پروژه:
این پروژه که کاربرد گسترده ای در هر مکانی که باطری مورد استفاده قرار گرفته ، از جمله UPS ها، شارژ های مختلف و ... دارد. لازم بذکر است که در هر مکانی که یک دستگاه UPS بعنوان نگهدارنده فعال بودن ولتاژ اصلی مورد استفاده قرار می گیرد تا در هنگام قطع برق انجام وظیفه نماید. UPS ها داری تعدادی باطری 6 یا 12 یا 48 ولتی هستند که باید سطح ولتاژ و جریان و همچنین دمای هر یک از این باطری ها قابل کنترل باشد، مدار فوق این وظیفه را برعهده دارد یعنی ولتاژ و جریان مصرفی شارژ و دشارژ و زمان خطا در عملیات فوق را کنترل می کند درحقیقت واسطی بین مدار UPS و شارژر باطری می باشد که علاوه بر کنترل جریان شارژ مدیریت تاریخ و زمان خطا را به تاریخ شمسی انجام می دهد. کاربر نیز می تواند با کلید های تنظیم مقدار کمیت های ولتاژ جریان و تنظیم تاریخ را تغییر دهد این اطلاعات برای اینکه همیشه پایدار باشند در حافظه eeprom میکروکنترلر ذخیره می شوند.
هدف از پروژه:
ساختار پروژه در تصویر زیر آورده شده است
برای دیدن در ابعاد واقعی بر روی عکس کلیک کنید.
راهنمای کامل و گزارشکار آماده و تایپ شده در Microsoft Office Word 79 صفحه 6 قسمت بهمراه فایل پایانامه تایپ شده و ویرایش شده آماده برای پرینت و فیلم آموزش عملکرد مدار
مقدمه :
محافظت جزو اصول اولیه برای اجرا و طراحی هر مدار یا سیستم الکتریکی است و کیفیت حفاظت میتواند تضمین کننده سلامت کارکرد سیستم و امنیت آن باشد. میتوان گفت که پروژه ی پیش رو در واقع یک کنترل کننده الکترونیکی است. از این لحاظ که مقادیر جریان و ولتاژ و دما را در محدوده ی دلخواه حفظ میکند، همانند یک مدار محافظ که در صورت از حد گذشتن مقدار جریان، یا ولتاژ یا دما مدار را قطع میکند، این دستگاه نیز در صورت تجاوز مقادیر مدنظر از حد تنظیم شده، مدار را قطع می کند. هر چند که مزایایی که این دستگاه به ما میدهد، بسیار بیشتر از یک محافظ معمولی است. ما در مدار محافظ برقی تنها میتوانیم مقدار ولتاژ از حد بالا گذشته را کنترل کنیم، در حالی که این مدار میتواند هم ولتاژ و هم جریان را هم در محدود ه ی بالا و هم در محدوده ی پایین کنترل کند. در این پروژه که در حقیقت یک محافظ تمام دیجیتال برای کنترل و محافظت از سطح جریان ، سطح ولتاژ ، میزان دما ی باطری در حال شارژ از حد مشخص شده توسط کاربر می باشد، می توان با اعمال جریانهای DC به ورودی مدار همین ولتاژ را کاملاً محافظت شده در خروجی تحویل گرفت. تمامی فرایند بر روی GLCD ال سی دی گرافیکی و همچنین LED های مدار برای رابط کاربری بهتر قابل نمایش می باشد، کاربر می تواند تنها با فشردن چند کلید اقدام به تنظیم تمامی مقادیر کنترل از جمله حد بالا یا پایین ولتاژ و جریان و همچنین تنظیم تایمرتأخیر و... که همه با یک کلید با نام Setting در دسترس می باشد و فرایند تنظیم بر روی صفحه نمایش نشان داده خواهند شد لازم بذکر است که تمامی تنظیمات تایمر و ولتاژ و جریان حد پایین و بالا در حافظه EEPROM تراشه AVR ذخیره شده تا در هنگام قطع برق تغذیه مدار تنظیمات حفظ شده تا نیاز به تنظیم مجدد نباشد.
برای دیدن در ابعاد واقعی بر روی عکس کلیک کنید.
ساعت دیجیتال RTC با تاریخ میلادی و شمسی و محاسبه سال کبیسه
یک مدار ساعت دیجیتال با RTC و کنترل آن با میکروکنترلر AVR می باشد که نمایش ساعت، دقیقه، ثانیه و روز، ماه، سال بر روی GLCD 128*64 - و همچنین امکان تنظیم آن با سه کلید - محاسبه سال کبیسه - تنظیم ساعت RTC توسط DS1307 - تبدیل تاریخ میلادی به شمسی و نمایش بر روی نمایشگر گرافیکی
شرح یا توصیف پایه های تراشه DS1307
تراشه DS1307 که یک تراشه دقیق ساعت RTC می باشد که برای تنظیم آن خواندن و نوشتن در آن از روش ارتباط I2C استفاده می شود، این تراشه همیشه با یک باطری Backup سه ولتی استفاده می شود دلیل آن هم این است که اگر تغذیه مدار قطع شود اطلاعات ساعت و RAM تراشه از بین نمی رود.
چند نکته راجع به الگوریتم تبدیل تاریخ میلادی به شمسی(و بالعکس) و سالهای کبیسه شمسی و میلادی:
سالهاي شمسي و ميلادي هر دو 365 روزه هستند مگر در سالهاي کبيسه که 366 روز ميباشند که اين استثناء هر 4 سال يکبار اتفاق ميافتد. و دليل آن هم اينست که طول يکسال شمسي و يا ميلادي دقيقأ 365 روز يا (ساعت)24 *(روز)365 =8760 ساعت نميباشد بلکه تقريبأ 365 روز و 4/1 روز يا 6 ساعت است. مقدار دقیق یک سال خورشیدی یا اعتدالی (Solar Year,tropical Year)برابر با 365.2422 روز است بعبارت دیگر مدت زمان یکبار گردش کامل زمین به دور خورشید راکه آنراسال خورشیدی مینامندبرابر است با 365.2422 یا (4.1288192 /1 + 365 )روز متوسط .دائره المعارف دریائی - خسرو مشتری خواه براي جبران و احتساب اين شش ساعت اضافه هر سال بدين ترتيب عمل ميشود که 4 تا از اين شش ساعت ها که 24 ساعت يا يکروز ميشوند را هر 4 سال يکبار سر جمع حساب کرده و به يک سال (که به آن کبيسه ميگويند) اضافه ميکنند و درواقع بدين ترتيب تقويم تنظيم وکاليبزه ميشود که اين موضوع 6 ساعت اختلاف در هر سال را ميتوان در زمان تحويل سال شمسي مشاهده کرد که هر سال نسبت به سال قبل يا بعد حدود 6 ساعت اختلاف ساعت دارد و هر 4 سال يکبار تقريبأ تحويل سال يکي ميشودکه در نهايت اين اختلاف ساعت ها را هر 4 سال يکبار سر جمع کرده و به يکي از سالها(سال کبيسه)همانطوريکه ذکر شد اعمال ميکنند. يافتن سالهاي کبيسه ميلادي وشمسي آسان است کافيست يک سال کبيسه را بدانيم و سالهاي 4+يا4- آنرا بدست اوريم مثلأ سال 2008 يک سال کبيسه است و همينطور سالهاي ...و
2000و2004و2008و2012و2016و2020و... سالهاي کبيسه بوده يا هستند. در مورد سالهاي کبيسه شمسي نيز مثلأ سال 1387 سال کبيسه بوده و ...و1379و1383و1387و1391و1395و1399و1403و... نيزسال کبيسه ميباشند. در واقع سالهاي آتي کبيسه قابل پيش بيني و منظور شدن در محاسبات هستند.و تقریبا هر 128 سال سالهای کبیسه همان مضارب 4 سال یکبار را تعقیب میکنند. هر 4 سال(هریک سال کبیسه) 0.7486 ساعت کم می آورد که در مجموع حدود هر 128 سال یکبار نیاز به تنظیم دارد.
نوشتن برنامه برای تبدیل میلادی به شمسی و بلعکس:
براي تبديل تاريخ شمسي به ميلادي و برعکس بايد تعداد روزهاي سپري شده از ابتداي هر کدام از اين تاريخها را از مبدا خود به دست بياوريم. اگر ميخواهيم تاريخ شمسي را به ميلادي تبديل کنيم ابتدا بايد روزهاي سپري شده از مبدا تاريخ شمسي تا کنون را حساب کنيم و آن را به اضافهي 226899 بکنيم. عدد به دست آمده تعداد روزهاي گذشته از ابتداي تاريخ ميلادي تا کنون است و با استفاده از آن ميتوانيم تاريخ ميلادي را حساب کنيم. براي تبديل تاريخ ميلادي به شمسي همين کار را بايد برعکس انجام بدهيم و عدد 226899 را بايد از تعداد روزهاي تاريخ ميلادي کم بکنيم و در اين قسمت عدد به دست آمده تاريخ شمسي است. همين روش نيز براي تبديل تاريخ قمري به شمسي و برعکس نيز قابل استفاده است. ولي در اين مورد ديگر عددي که بايد اضافه يا کم بشود 226899 نيست. شايد از خود بپرسيد که عدد 226899 را از کجا به دست آوردهام. براي به دست آوردن اين عدد بايد تاريخ شمسي و ميلادي يک روز را در اختيار داشته باشيد. به عنوان مثال 13/4/1383 شمسي طبق تقويم برابر 3/7/2004 ميلادي است. کاري که بايد الا بکنيم اين است که اين دو تاريخ را به روز تبديل کنيم و در اين تبديل بايد تعداد سالهاي کبيسهاي که اين دو تاريخ پشت سر گذاشتهاند نيز فراموش نکنيم. براي اينکه تعداد سالهاي کبيسه را در دو تقويم ميلادي و شمسي بخواهيم محاسبه کنيم بايد 1382 را براي تقويم شمسي و 2003 را براي تقويم ميلادي تقسيم بر 4 کنيم. خارخ قسمت اين دو تقسيم به ترتيب تعداد سالهاي کبيسهي تقويم شمسي و ميلادي است که از ابتداي شروع به کار اين تقويمها تا کنون پشت سر گذاشتهاند. البته اين اعداد مطابق واقعيت نيستند! ولي به محاسبات ما اشکالي وارد نميکنند.
نحوه اتصال GLCD به میکروکنترلر:
در بیشتر مدارهای میکروکنترلری ما نیاز به نمایش اطلاعات برای کاربر داریم، برای این کار راه های مختلفی وجود دارد از جمله استفاده از چند ، LED استفاده از ، 7segment استفاده از LCD و ...،اما LCDها به علت داشتن قابلیتهای بیشتر نمایش، ابعاد مختلف و برنامه ریزی آسان اغلب مورد توجه قرار می گیرند. LCDها شامل انواع کاراکتری و گرافیکی هستند که در اینجا نوع گرافیکی آن را معرفی و طرز استفاده آن را شرح می دهیم.
امروزه از LCD های گرافیکی بطور گسترده در پروژه های الکترونیک استفاده می شود. یک LCD گرافیکی از تعدادی ماتریس نقطه ای بهم پیوسته تشکیل شده است و توسط یک تراشه راه انداز کنترل می شود. بطور کلی انواع LCD های گرافیکی یا GLCD براساس تراشه راه انداز خود دسته بندی می شوند دونوع از پر مصرف ترین این نمایشگرها را می توان به شماره KS0108 و مدل T6963C مدل Toshiba نامبرد. این نوع ال سی دی ها می توانند ماتریس نقطه ای به اندازه 64 سطر و 128 ستون یا 8192 نقطه را توسط RAM نمایش DDRAM به ظرفیت 128×64 بیت نمایش دهد. مدل GDM12864A توسط تراشه KD0108 کنترل می شود. این تراشه یک راه انداز با 64 کانال خروجی و به منظور کنترل LCD های ماتریسی گرافیکی طراحی شده است.
تقسیم بندی صفحه نمایش GLCD :
همانطور که اشاره شد ال سی دی های گرافیکی از دو تراشه کنترلی KS0108 استفاده می کند. که تراشه اول کنترل نیمه راست و تراشه دومی کنترل نیمه چپ صفحه را برعهده دارند. در هر لحظه فقط یکی از این دو تراشه قابل دسترسی است که توسط پایه های CS1و CS2 قابل انتخاب می باشند. شکل زیر این مطلب را بخوبی نشان می دهد.
نرم افزار های کاربردی GLCD :
تراشه های GLCD فقط برای نمایش تصویر طراحی شده اند و فاقد بخش نمایش کاراکتر های استاندارد (حالت متنی) می باشند. بنابراین برای تبدیل تصویر به کدهای قابل نمایش بر روی GLCD باید از نرم افزار های موجود دراین زمینه استفاده نمود یکی از این نرم افزار ها نرم افزار FastLCD است که کار با آن بسیار آسان و راحت می باشد که نحوه کشیدن تصویر دلخواه برای طراحی و کد نویسی در متن زیر آورده شده است: ابتدا تصویر موردنظر را توسط نرم افزار Shortcut رسم نموده مانند شکل زیر با ابزار موجود در نوار ابزار سمت چپ سپس به فرمت BMP فایل ذخیره نمائید :
در مرحله بعد برای تبدیل این تصویر با فرمت خاص به کد هگز HEX قابل استفاده برای نرم افزار CodeVision Compiler از نرم افزار بسیار عالی به نام BMP2HEX Ver3 استفاده نموده تا به آسانی این تبدیل انجام شود مانند تصویر زیر
استفاده از کتابخانه GLCD
هميشه کار با کتابخانه GLCD يا ال سي دي گرافيکي اصلي کدويژن براي خودم دشوار بوده و خيلي مبهم و هيچوقت توابع آنرا بصورت کامل نتوانستم پيدا کنم. براي همين از کتابخانه هاي ديگر براي راه اندازي ال سي دي گرافيکي استفاده مي کردم. اين کتابخانه از زبان فارسي و عربي به خوبي پشتيباني مي کند. همچنين قابليت کشيدن هر شکلي را دارد. به راحتي مي توانيد يک انيميشن را روي GLCD نمايش بدهيد.
بخش تنظیمات مدار به شرح زیر می باشد
تنظیم دما
تنظیم حد ولتاژ و جریان
تنظیم ساعت تاریخ و تایمر
این پروژه قابلیت استفاده در مکان های مختلف را دارد به همین خاطر پیشنهاد من برای تغییر در برنامه و سخت افزار به شرح زیر می باشد، میتوان در آینده به برنامه امکان نشان دادن ساعت و تاریخ خطا در هر اتصال و شارژ یا دشارژ باطری اضافه نمود تا سخت افزار بتواند یک گذارش دهنده داشته باشد، این گذارش می تواند هم بر روی GlCD و هم اگر بخواهیم توسط ارتباط های پورت میکرو با وسایل جانبی (SPI-TWI-USART-USB) و ... با سخت افزار های جانبی در ارتباط باشد. اطلاعات ارسالی که ساعت تاریخ سال و ماه و روز می باشد را به وسایل جانبی دیگر از قبیل رایانه ها رم ها وسایل بی سیم و ... برای برسی بیشتر و ثبت ارسال نماید گاهی این اطلاعات در درازمدت می توانند در انتخاب و خرید باطریها و UPS ها و کاربرد خط مورد استفاده قرار گیرد.
تعریف ADC و دقت یک مبدل آنالوگ به دیجیتال از نوع مختلف (Analog to Digital Converter)
مبدل های آنالوگ به دیجیتال انواع در نوع های متفاوت با نوع خروجی و ورودی و تفکیک رقم خوانده شده دیجیتال ساخته شده و روانه بازار می شوند.
مبدل آنالوگ به دیجیتال چیست؟برای تبدیل یک ولتاژبه اعداد از مبدل انالوگ به دیجیتال استفاده میشود.چون میکرو کنترلر بر مبنای دیجیتال پایه گذاری شده است. میکرو های AVR دارای مبدل انالوگ به دیجیتال سرخود است.ولتاژ مرجع انها به سه صورت انتخاب میشود
(ولتاژ مرجع ولتاژی است که مبدل تا ان مقدار ولتاژ را خوانده و تبدیل میکند) برای دادن ولتاژ خارجی به ADC از پایه های AVCC,AREF,GND استفاده می شود. پایه AVCC به ولتاژ تغذیه وصل شده وGND هم به منفی وصل میشود.AREF که برای ولتاژ خارجی است از داخل برنامه هم باید تنظیم شود,تا بعنوان ولتاژ مرجع انتخاب شود. مبدل انالوگ به دیجیتال برای رسیدن به حداکثر دقت به فرکانس کلاکی بین 50 تا 200 کیلو هرتز نیاز دارد.این فرکانس یک سرعت متناسب با دقت مناسب را ارائه میدهد, اگر بخواهیم سرعت تبدیل اطلاعات به دیجیتال زیاد باشد باید فرکانس کلاکی افزایش پیدا کند که دقت را کاهش میدهد. نکته:اگر کاربر از یک منبع ولتاژ متصل به پایه aref استفاده کند, نمیتواند از ولتاژهای مرجع دیگر استفاده کند.اگر ولتاژخارجی به پایه aref متصل نگردد, کاربر میتواند بین ولتاژهای مرجع avcc و یا 2.56 v سوئیچ نماید. -برای حذف نویز روی ورودی انالوگ که ناشی از هسته cpu میباشد, میتوان میکرو را در مد sleep قرار داد. در این مد cpu خاموش بوده و نمونه برداری انجام میشود سپس cpu روشن میشود.
اطلاعات بیشتر در این رابطه و نحوه برنامه نویسی پس از سفارش پروژه برای شما ارسال خواهد شد
هدف نمایش کاراکتر عدد در مبنای 10 با هر رقم اعشار دلخواه:
اگر از sprintf - printf استفاده کنیم بايد حتماً براي تنظيمات کدويژن رو به float تغيير بدیم ،به روش زیر
طراحی و برنامه نویسی با دقت های مختلف به شرح زیر آزمایش شد در این بخش از TEST 1- دقت با 3 رقم اعشار [0.000] در این بخش که عبارت 1.234 بر روی سونسگمنت بصورت پیش فرض نمایش داده می شود. برای نمایش آخرین رقم شمارش 9.999 کافی دو علامت // خط 53 را بردارید تا پس از کامپایل کردن عبارت موردنظر نمایش داده شود
درنرم افزار code visionبرای آسان تركردن كاربا پورت سریال USART توابعی فراهم شده است.این توابع درفایل سرآمد stdio.h می باشند. فهرست وعملكرد این توابع به شرح زیراست: Getchar() puts() printf() scanf() gets()Putchar() putsf() sprintf() sscanf() این توابع تنها برای ارسال ودریافت داده سریال با USARTمورد استفاده قرارمی گیرند.تنظیم وبرنامه ریزی اولیه واحد USART باید قبل ازبكارگیری این توابع توسط برنامه نویس انجام پذیرد.تابع Getchar()این تابع كاراكتری را ازواحد USART خوانده ودرمتغیری قرارمی دهد.الگوی این تابع به صورت زیر است Char getchar(void) درالگوی این تابع مقداربازگشتی به فرم char است .توجه داشته باشید كه برنامه هنگام رسیدن به این تابع منتظردریافت می ماند.تابع Putchar()این تابع می تواندیك متغیركاراكتررا توسط واحد USART وازطریق پایه TXD ارسال نماید.الگوی تابع به صورت زیر است :Void putchar(char c) دراین مثال ابتدارابط USART برنامه ریزی اولیه شده به طوریكه قالب اطلاعات هشت بیتی با یك بیت توقف وبدون بیت توازن وBaude rate ، 19200 تنظیم شده ، سپس تابع Getchar() منتظردریافت اطلاعات می ماند.وپس ازدریافت ، داده را درمتغیرDATA قرارداده ودوباره همان داده رابا دستورputchar روی پایه TXD ارسال می كند. ارسال داده با توابع putcO,putsfOاین توابع می توانند یك رشته را توسط واحد USART ارسال نمایند. تفاوت بین این دو تابع درمنبع اطلاعات ارسالی است . بطوری كه تابع putsO رشته ای را كه درحافظه SRAM قرار داردروی خروجی قرار داده وتابعputsfO ،رشته ای راكه درحافظه FLASH قراردارد به خروجی ارسال می كند. الگوی این توابع به صورت زیر است.Void puts (char *str);Void putsf (char *str); ارسال اطلاعات با توابع printfOاین تابع نسبت به توابع قبلی ارسال ، دارای قابلیت بیشتری است. ازاین تابع برای ارسال اطلاعات به فرم های مختلف استفاده می شود.الگوی این توابع به صورت زیراستVoid printf (char flash *fmtstr [,argl , arg2, ….] )نحوه كاربرد این توابع را می توان بطور ساده به صورت زیر نشان داد.<عبارت دوم> و" <عبارت اول> " ) printfعبارت دوم , اطلاعاتی است كه باید توسط پایه TXD ارسال شود وعبارت اول می تواند همان اطلاعات ارسالی به صورت رشته ویا كاراكترهای تعین كننده فرمت ارسالی خروجی باشد. این كاراكترها نوع اطلاعات عبارت دوم رامشخص می كنند. كاراكترهای فرمت باعلامت% شروع می شوند. جدول 11-5 كاراكترهای فرمت برای printfO را نشان می دهد.
كاراكتر نوع اطلاعات ارسالی
%c یك تك كاراكتر
d% عدد صحیح علامت دار درمبنای10
%i عدد صحیح علامت دار درمبنای10
e% نمایش عدد ممیز شناور به صورت علمی
E% نمایش عدد ممیز شناور به صورت علمی
f% عدد اعشاری
s% عبارت رشته ای واقع درحافظه SRAM
u% عدد صحیح بدون علامت درمبنای 10
X% به فرم هگزاد سیمال با حروف بزرگ
x% به فرم هگزاد سیمال با حروف كوچك
P% عبارت رشته ای واقع درحافظه FLASH
% % نمایش % تعیین طول (width) ودقت (precision) خروجی درتابع printfOدرتابع printfOاین قابلیت رادارد كه طول داده ارسالی ودقت آن راتعیین نمایند.طول ودقت به صورت width.precision% بیان می شود.كه width نشان دهنده طول مقدار خروجی است. اگرطول ازتعداد رقم های یك عدد صحیح بیشترباشد عدد سمت راست آن قرار می گیردوسمت چپ خالی می ماند درغیر این صورت اگر طول كمتر ازتعداد رقم های عدد باشد،طول نادیده گرفته می شود .
سنسور جریان بکار رفته در پروژه ACS758LCB 050
که در فصل اول گفته شده، سنسور استفاده شده در این مدار سنور ACS758LCB 050 است. این سنسور قابلیت این را دارد که جریانهای DC و AC را اندازه گیری کند. حد اکثر جریان قابل اندازه گیری توسط این خانواده از سنسور ها 200 A است. مدل استفاده شده در این پروژه میتواند تا را اندازه گیری کند. علامت پشت مقدار قابل اندازه گیری نشان دهنده ی دو قطبی بودن این سنسور است. طبق DATASHEET این قطعه، به ازای هر آمپر جریان، در خروجی سنسور 40 mV تغییر ولتاژ ایجاد میشود. البته این مقدار حساسیت سنسور، با بیشترین حاشیه ی دقت توسط شرکت تولید کننده ارائه شده است. طبق برگه اطلاعات سنسور، از آنجا که حداکثر مقدار قابل اندازه گیری توسط این سنسور مقدار بالایی است، این میزان دقت به نظر مناسب میرسد. اما در وب سایت این شرکت به این موضوع اشاره شده است که دقت یا Sensivity این سنسور ارتباط غیر مستقیم با پهنای باند کاربرد مورد نظر دارد، بدین صورت که هر چه پهنای باند کاهش یابد دقت اندازه گیری بیشتر میشود. برای پهنای باند تا 200 هرتز، دقت قابل اندازه گیری حدود 11 mA است. در این پروژه برای داشتن یک حاشیه ی دقت، مقدار حداقل جریان قابل نمونه برداری 0.1 A در نظر گرفته شده است که با توجه به بالا بودن حداکثر مقدار قابل اندازه گیری، این میزان دقت قابل قبول است. نمودار و جدول (2 – 2) کمترین مقدار جریان قابل تشخیص توسط سنسورهای تولید این شرکت در بازه های مختلف پهنای باند را نشان میدهد:
برای دیدن در ابعاد واقعی بر روی عکس کلیک کنید.
مدار نمونه در تصویر زیر آورده شده است
در شکل زیر فرم PCB مدار آورده شده است
نحوه ی عملکرد دستگاه
دستگاهی الکترونیکی است به منظور تامین پیوسته انرژی برای دستگاههای مصرف کننده که به اختلالات موجود در شبکه و قطع برق حساس بوده و به دلیل ضرورت و حساسیتهای فوق العاده زیاد جزو تجهیزات حیاتی مجموعههای کامپیوتری، مخابراتی، کنترل و ابزار دقیق، ازمایشگاهی و بیمارستانی میباشند. کاهش یا افزایش ناگهانی ولتاژ، تغییر فرکانس، انواع اعوجاج لحظه ای یا دایم، نمونههایی از مشکلات ایجاد شده بر روی شبکههای برق شهری میباشند. دستگاه های الکترونیکی پیشرفته و حساس (نظیر سیستمهای کامپیوتری، تجهیزات مخابراتی و پزشکی) با توجه به کاربردهای ویژه و حساسی که دارند نیازمند تجهیزات ضروری مانند منبع تغذیه بدون وقفه و نسبتا دقیق بوده تا ولتاژ و فرکانس ثابت و قابل اطمینان را تامین نماید. دستگاه یو پی اس (ups) از وسایل ضروری کامپیوترها محسوب میشود. به عنوان مثال در صورت وجود کوچکترین اغتشاش در برق شهر بخش کنترل کامپیوتر، با تولید یک پالس موجب خاموش و روشن شدن مجدد (Restart) کامپیوتر میگردد. لذا با این عمل اطلاعاتی که در حافظه RAM سیستم وجود دارد، از بین رفته و زیان های جبران ناپذیری به کاربر وارد شده و حاصل کار کاربر در چند لحظه از بین میرود. در مورد سایر سیستمهای حساس نظیر دستگاههای مخابراتی و شبکههای اطلاعاتی نیز با قطع یا تغییر مشخصات منبع تغذیه، هماهنگی بخشهای مختلف دستگاه بهم خورده و بر اثر قطع و وصلهای متوالی، علاوه بر صدماتی که به قطعات دستگاه وارد می شود، عملکرد کل سیستم با اختلال مواجه میگردد. با توجه به مطالب فوق، نیاز به وجود دستگاهی که بتواند جایگزین مناسبی برای برق شهر در مواقع اضطراری گردیده و با حذف اختلالات شبکه تغذیه مدارات حساس را بر عهده گیرد، نمایان می شود. این دستگاه یوپی اس نام دارد و جهت استفاده کاربران، انرژی DC را به AC تبدیل می کند. لازم به ذکر است که در مواقع قطع برق میتوان از ژنراتوهای AC جهت تغذیه دستگاهها استفاده نمود ولی این منابع با توجه به مشکلاتی نظیر شناور بودن ولتاژ و فرکانس، حجم بزرگ، الودگی صوتی، دودزا بودن، زمان طولانی وصل شدن بعداز قطع برق و لزوم سرویس و باز بینی دایمی عملا کاربردی در دستگاههای حساس ندارد. دستگاههای یو پی اس (ups) با ابعاد کوچک و بدون نیاز به سرویس دایمی و بدون ایجاد آلودگیها با تثبیت ولتاژ و فرکانس، وسایل بسیار مناسبی جهت حفاظت سیستمها در مقابل اختلالات برق شبکه میباشد. به منظور افزایش مدت زمان برق دهی در یو پی اس ها از کابینت باتری مجهز به باتری استفاده میباشد.
شرح سخت افزار مدار محافظ شارژر باطری
در این راهنما بخشهای مختلف خارجی مدار از جمله تغذیه مدار – بخش سنسور جریان و ولتاژ و... توضیح داده شده در این بخش به شماتیک اصلی مدار و نحوه طراحی آن خواهیم پرداخت، مدار بخش به بخش جدا شده و توضیح عملکرد هر بخش آورده خواهد شد سپس به شرح برنامه نوشته شده تراشه اصلی مدار خواهیم پرداخت.
تغذیه اصلی دستگاه که از یک رگولاتور 5 ولت 7805 استفاده شده و قطعات جانبی آن خازن 1000uf که برای صافی استفاده شده و پل دیود BR1 هم برای جلوگیری از وصل اشتباهی تغذیه ورودی DC که ممکن است 7805 و میکرو کنترلر ما را آسیب برساند و هم برای یکسوسازی در مدار لحاظ شده است دیود D6 زنر 5.1 ولت نیز برای همین در مدار مورد استفاده قرار گرفته چون گاهی بعلت آسیب دیدن تراشه 7805 ولتاژ خروجی از 5 ولت فراتر رفته و باعث سوختن میکروکنترلر که تراشه گرانقیمتی است می شود. لازم بذکر است که جریان کشیده شده کل مدار حدود 500 mA می باشد. خازن های بدون قطب C20 تا C23 برای حذف ریپل ناشی از روشن و خاموش شدن دیود ها پل دیود در مدار استفاده شده بهتر می باشد از این خازنها در مدار مونتاژ شود البته اگر هم مونتاژ نشود در عملکرد مدار تاثیری نخواهد داشت. ترانس مدار TR1 از نوع کاهنده می باشد 220 به 12 ولت جریان 500 میلی آمپر از نوع دوسر خروجی. خازن های C26 و C25 از Data Sheet [KA78XX] در مدار لحاظ شده در شکل زیر نحوه پایه های این تراشه و مدار آن آورده شده
بخش تولید کننده صدا در مدار که توسط یک بازر BUZZER 5 ولتی صدای بیب را برای بخش رابط کاربری ایجاد می کند. سیگنال دیجیتال تولید شده توسط ترانزیستور BC547 T1 که بعنوان کلید در مدار بکار رفته شده باعث قطع و وصل شدن بازر می شود. صدای بازر جهت اطلاع از روند کارکرد مدار و ارتباط آن با کاربرمورد استفاده قرار می گیرد.
تأمین کننده ولتاژ مرجع 2.560 ولتی برای بخش مبدل ADC تراشه میکرو کنترلر AVR که بجای ولتاژ مرجع داخلی از این تراشه LM336 استفاده نموده ایم که ولتاژ دقیق تری را برای ما تأمین خواهد کرد و توسط پتانسیومتر دقیق مولتی ترن در سطح مورد نظر تنظیم می شود و به پایه 21 تراشه AVR داده خواهد شد.
راهنمای بیشتر و کاملتر پس از سفارش پروژه برای شما ارسال می شود لازم بذکر است این خلاصه ای از فایل های راهنمای همراه این پروژه می باشد.
برنامه C برای AVR
برای دیدن در ابعاد واقعی بر روی عکس کلیک کنید.
نکته: آموزش نحوه طراحی و برنامه نویسی تراشه میکروکنترلر AVR به زبان C و توضیح خط به خط برنامه به همراه پروژه برای شما ارسال خواهد شد نمونه ای از بخش های این فایل راهنما در شکل ها آورده شده است:
(( سفارش پروژه ))
برای سفارش این برنامه با همین شکل و اجزاء و یا تغییر برنامه مورد نظر به دلخواه خود می توانید از روش های زیر اقدام نمائید، کد سفارش پروژه را ارسال کنید:
هزینه طراحی: SMS-> 0911 831 50 58
کد سفارش پروژه: 103p38
سفارش پروژه >>> Project-esisis.com/Contentبرای ارتباط با مدیر سایت از لینکهای زیر استفاده کنید
آدرس کانال سایت در تلگرام : www.telegram.me/Electronic_iran
آیدی جهت ارتباط در تلگرام: @Electronic_iran
تمام حقوق این وب سایت و مطالب آن متعلق به بزرگترین وب سایت آموزش الکترونیک می باشد و هرگونه کپی برداری از مطالب آن فقط با ذکر منبع مجاز است
Copyright © 2012 , project-esisis.com